Storage Policy APIs
The PbmComplianceManager provides methods to verify the compliance of virtual machine and virtual disk requirement profiles.
When you provision a virtual machine on a matching datastore, the Server sends the profile to the storage provider. When you perform a compliance check, the storage provider compares the requirements with its capabilities, returns the results to the Server, and the Server returns the results to your client. The Server maintains the compliance results for retrieval at a later time.
You can check the compliance of one or more virtual machines and/or virtual disks. You can also perform a rollup compliance check, in which the Server checks the compliance of a virtual machine and all of its virtual disks.
The PbmPlacementSolver data object provides methods to identify placement hubs that support the capabilities to store virtual machine files.
A placement hub is a datastore or a storage pod. A vSphere API StoragePod
corresponds to Storage DRS in the vSphere Web Client.
The PbmProfileProfileManager supports operations on virtual machine storage profiles.
A Storage Policy API profile consists of a set of subprofiles. A subprofile corresponds to a rule set in the vSphere Web Client.
Virtual machine storage profiles specify the storage requirements for virtual machine files. You use the vSphere Web Client to define virtual machine storage profiles. The requirements (PbmCapabilityProfile.constraints) impose constraints on the placement of virtual machine files.
The Storage Policy Server also supports datastore profiles. Datastore profiles define storage capabilities. Storage capabilities are resources defined by storage providers. Storage requirements are based on storage capabilities. When you associate a storage profile with a virtual machine or virtual disk, the Server sends the profile to the storage provider. When you perform compliance checking (PbmComplianceManager), the storage provider compares the requirements with the capabilities.
The PbmProfileProfileManager supports the following operations on virtual machine storage profiles.
- Create, update, and delete storage profiles.
- Retrieve profile data based on specified criteria.
- Retrieve storage vendor data.
The following figure shows the set of data objects that comprise a storage profile specification (PbmCapabilityProfileCreateSpec). You pass a storage profile specification to the Storage Policy Server when you call the following methods:
- PbmProfileProfileManager.PbmCreate
- PbmPlacementSolver.PbmCheckCompatibilityWithSpec
- PbmPlacementSolver.PbmQueryMatchingHubWithSpec +---------------------------------+ | PbmCapabilityProfileCreateSpec | | name | +-------------------------+ | description | | PbmProfileResourceType | | resourceType ------| resourceType=STORAGE | | constraints --- +-------------------------+ +---------------------------------+ | | | +------------------------------------+ | PbmCapabilitySubProfileConstraints | | subprofiles --- +------------------------------------+ | | 1..n | +-------------------------+ | PbmCapabilitySubProfile | | name | | forceProvision | | capability --- +-------------------------+ | | 1..n +-------------------------------+ | | PbmCapabilityMetadataUniqueId | +-----------------------+ | id | | PbmCapabilityInstance | | namespace | | id ------------+-------------------------------+ | constraint --- +-----------------------+ | | 1..n | +-------------------------------+ +---------------------------------+ | PbmCapabilityPropertyInstance | | PbmCapabilityConstraintInstance | 1..n | id | | propertyInstance ----------| value | +---------------------------------+ +-------------------------------+
The PbmReplicationManager provides methods dealing with replication aspects of virtual machine and virtual disk requirement profiles.
The PbmServiceInstance managed object is the root object of the Storage Policy service.
After you connect to the Storage Policy Server, you create a reference to the PbmServiceInstance, and use that reference to retrieve the PbmServiceInstanceContent data object. The PbmServiceInstanceContent object provides access to the Storage Policy managed objects.